Conventionally, printers and other image processing systems that process page description languages (PDL) such as Postscript, LIPS, PCL and the like have a band buffer, page buffer or other such frame buffer, with objects to be drawn being rendered in the frame buffer. In such a method, in order to draw a single object from among a plurality of objects in the frame buffer, images surrounding the image to be drawn are read from a memory that is the frame buffer, combined with the object to be drawn and rewritten to the memory, with such a process being repeated until all the objects are drawn. As a result, the memory that is the frame buffer is subjected to a large volume of read-modify-write processing, and accordingly, when the printer resolution is high or when the fineness of the imaging is enhanced (as in the case of a color printer), either the amount of time required to render the object in the memory or the required memory bandwidth increase dramatically.
In order to overcome such a drawback, a rendering method that generates final pixel information directly from the edge information and the layer information of the objects to be drawn has been proposed in Japanese Laid-Open Patent Application No. Ser. 2000-137825. In this method, what kinds of objects exist is determined from the object edge information, and then what object exists on the surface is determined from the layering of the objects, and finally, from the color information of the object resting on top, the color of the current pixel is determined. Production of each and every pixel is carried out in a similar manner, one pixel at a time. As a result, the need to carry out large volumes of read-modify-write operations when rendering the object in the memory is eliminated. The advantage thus gained is that the time needed for rendering does not increase dramatically even if the resolution and fineness increase.
However, with the method described above, edge information for the object must be obtained prior to rendering the object. Many alphanumeric characters are included in any textual matter to be printed, for example, but even so it is necessary to obtain edge information for the character font objects. Given the large variety of alphanumeric characters and the complexity of their edges, a drawback arises in that extensive time is required for the edge extraction process.
Additionally, the typical bitmap font is a binary bitmap image, and the process of extracting edges from a binary bitmap image amounts to bit processing. As a result, processing with an ordinary CPU requires a large number of cycles, making it difficult to carry out such processing at high speed.
Additionally, problems with the edge extraction process are not limited to the above-described rendering but occur also in the execution of raster-to-vector conversion in so-called optical character recognition (OCR) operations.
In other words, when performing OCR on an image scanned from a scanner, the raster image is converted into a vector image. The first part of such raster-to-vector conversion involves scanning each pixel of the raster image and establishing the coordinates of points where the density of the pixels changes (in other words, the edges of the image). The last part of the raster-to-vector conversion involves deducing the relationship between a plurality of edges from the edge coordinates so established so as to produce vectors. Conventionally, the entire raster-to-vector conversion process, including the above-described process of establishing coordinates, has been carried out using CPU software.
In OCR, the raster image to be processed is often a binary bitmap image. In the process of scanning the pixels of the binary bitmap image, a large amount of bit processing must be carried out, and in the ordinary CPU such bit processing requires a large number of cycles. As a result, the conventional problem remains insofar as the raster-to-vector conversion still requires substantial periods of time in order to be accomplished.